/*************************************************
 * @autheur : CHOLLET Clément et LEMOUEL Florian *
 * @date    : 03.04.2013                         *
 * @version : 1.0 - Création de la classe        *
 *************************************************/

#ifndef GESTIONNAIRELUMIERES_H
#define GESTIONNAIRELUMIERES_H

#include <stdlib.h>
#include "lumiere.h"

/*********************************************************************************************************************************************
 *                                                          Classe de gestion des lumières                                                   *
 *********************************************************************************************************************************************/
class GestionnaireLumieres
{
    //-----------------------------------------------------Constructeurs et destructeurs-----------------------------------------------------//
    private:
        //Constructeur par défaut
        GestionnaireLumieres();
public:
        //Destructeur
        ~GestionnaireLumieres();

    //----------------------------------------------------------------Méthodes---------------------------------------------------------------//
    private:
        void initialiser();

    //---------------------------------------------------------------Accesseurs--------------------------------------------------------------//
    public:
        //On récupère l'instance courante de la classe GestionnaireLumiere
        static GestionnaireLumieres& getInstance();

        //On récupère la lumière stockée à l'indice numero
        Lumiere& getLumiere(int numero);

    //-------------------------------------------------------Surcharge des opérateurs--------------------------------------------------------//
    public:

    //--------------------------------------------------------------Attributs----------------------------------------------------------------//
    private:
        //Unique instance de la classe GestionnaireLumieres
        static GestionnaireLumieres* _instance;

        //Contient toutes les lumières applicables à la scène 3D
        Lumiere* _tabLumieres[8];

        static bool initialise;
};

#endif // GESTIONNAIRELUMIERES_H
